//package com.xiaohan.springbootinit.job.once;
//
//import cn.hutool.core.collection.CollUtil;
//import cn.hutool.http.HttpRequest;
//import cn.hutool.json.JSONArray;
//import cn.hutool.json.JSONObject;
//import cn.hutool.json.JSONUtil;
//import com.xiaohan.springbootinit.esdao.PostEsDao;
//import com.xiaohan.springbootinit.model.dto.post.PostEsDTO;
//import com.xiaohan.springbootinit.model.entity.Post;
//import com.xiaohan.springbootinit.service.PostService;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.boot.CommandLineRunner;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.Resource;
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Map;
//import java.util.stream.Collectors;
//
///**
// * 单次任务
// * 项目启动时只执行一次，拉取外网上的文章数据【离线爬取，项目启动时获取一次，然后入库，后续访问时直接渲染】
// */
//// todo 取消注释开启任务
//@Component
//@Slf4j
//public class FetchInitPostList implements CommandLineRunner {
//
//	@Resource
//	private PostService postService;
//	@Override
//	public void run(String... args) {
//		//1.分析数据源，并获取数据【此处通过直接请求接口获取】
//		String json = "{\n" +
//				"  \"pageSize\": 12,\n" +
//				"  \"sortOrder\": \"descend\",\n" +
//				"  \"sortField\": \"createTime\",\n" +
//				"  \"tags\": [],\n" +
//				"  \"current\": 1,\n" +
//				"  \"reviewStatus\": 1,\n" +
//				"  \"category\": \"文章\",\n" +
//				"  \"hiddenContent\": true\n" +
//				"}";
//		String url = "https://api.codefather.cn/api/post/list/page/vo";
//		String result = HttpRequest.post(url)
//				.body(json)  //传入json请求体
//				.execute()   //执行调用
//				.body();     //获取响应结果
////		System.out.println(result2);
//
//		//2.将json格式的响应结果转换为java对象
//		Map<String,Object> rsMap = JSONUtil.toBean(result, Map.class);
//
//		//判断
//		if((Integer)rsMap.get("code") != 0){
//			log.error("初始化文章列表失败");
//			return;
//		}
//
////		System.out.println(rsMap);
//		//获取data
//		JSONObject data = (JSONObject) rsMap.get("data");
//
//		//获取data结果集中的文章列表records【Json数组类型，其中的每个文章数据作为一个Json对象】
//		JSONArray records = (JSONArray) data.get("records");
////		System.out.println(rsMap);
//
//		List<Post> myPostList = new ArrayList<>();
//		for(Object jsonObject : records){
//			//判空
//			if(jsonObject == null){
//				log.error("系统异常，请重试...");
//				return;
//			};
//
//			//获取数据转换
//			JSONObject tempRecord = (JSONObject) jsonObject;
//			Post post = new Post();
//			post.setTitle(tempRecord.getStr("title"));
//			if(tempRecord.getStr("content") == null || tempRecord.getStr("content").isEmpty())
//			{
//				post.setContent("暂无内容 / 内容受保护");
//			}else {
//				post.setContent(tempRecord.getStr("content"));
//			}
//			JSONArray tagList = (JSONArray) tempRecord.get("tags");
//			List<String> tags = tagList.toList(String.class);
//			post.setTags(JSONUtil.toJsonStr(tags));
//			post.setUserId(1L);
//			myPostList.add(post);
//		}
////		System.out.println(myPostList);
//
//		//3.存入数据库【批量插入】
//		boolean rs = postService.saveBatch(myPostList);
//		if(rs) {
//			log.info("初始化文章列表成功,条数:{}", myPostList.size());
//		}else{
//			log.error("初始化文章列表失败");
//		}
//	}
//}
